package cn.iocoder.yudao.module.asasc.controller.admin.campaign.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;

@Schema(description = "管理后台 - 广告数据汇新增/修改 Request VO")
@Data
public class CampaignGrandTotalsSaveReqVO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17111")
    private Long id;

    @Schema(description = "账户")
    private Long orgId;

    @Schema(description = "应用")
    private Long adamId;

    @Schema(description = "日期")
    private LocalDate date;

    @Schema(description = "粒度")
    private Integer granularity;

    @Schema(description = "展示次数")
    private Integer impressions;

    @Schema(description = "点击次数")
    private Integer taps;

    @Schema(description = "安装次数")
    private Integer installs;

    @Schema(description = "新安装")
    private Integer newDownloads;

    @Schema(description = "重复安装")
    private Integer reDownloads;

    @Schema(description = "LAT开安装次数")
    private Integer latOnInstalls;

    @Schema(description = "LAT关安装次数")
    private Integer latOffInstalls;

    @Schema(description = "点击率")
    private BigDecimal ttr;

    @Schema(description = "每次转化费用")
    private BigDecimal avgCpaAmount;

    @Schema(description = "转化货币")
    private String avgCpaCurrency;

    @Schema(description = "每次点击付费")
    private BigDecimal avgCptAmount;

    @Schema(description = "点击货币")
    private String avgCptCurrency;

    @Schema(description = "每千次展示付费")
    private BigDecimal avgCpmAmount;

    @Schema(description = "展示货币")
    private String avgCpmCurrency;

    @Schema(description = "支出金额")
    private BigDecimal localSpendAmount;

    @Schema(description = "支出货币")
    private String localSpendCurrency;

    @Schema(description = "转化率")
    private BigDecimal conversionRate;

    // 新增字段
    @Schema(description = "销售额")
    private BigDecimal ascSales;

    @Schema(description = "所得")
    private BigDecimal ascProceeds;

    @Schema(description = "展示次数")
    private Integer ascImpressions;

    @Schema(description = "点击次数")
    private Integer ascTaps;

    @Schema(description = "首次安装次数")
    private Integer ascInstalls;

    @Schema(description = "重新安装次数")
    private Integer ascReInstalls;

    @Schema(description = "更新安装次数")
    private Integer ascUptInstalls;

    @Schema(description = "点击率")
    private BigDecimal ascTtr;

    @Schema(description = "转化率")
    private BigDecimal ascConversionRate;

    @Schema(description = "试订数")
    private Integer ascTrial;

    @Schema(description = "订阅数")
    private Integer ascRenewal;

    @Schema(description = "退款数")
    private Integer ascRefund;

    @Schema(description = "退款销售额")
    private BigDecimal ascRefundSales;

    @Schema(description = "退款所得")
    private BigDecimal ascRefundProceeds;
}